package com.spzx.product.test;

import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.ss.formula.functions.T;

import java.util.ArrayList;
import java.util.List;

/**
 * 解析Excel的监听器程序。
 * @param <T>
 */
@Slf4j
public class ExcelListener<T> extends AnalysisEventListener<T> {

    //存储从Excel解析的每条数据
    List<T> datas = new ArrayList<>();

    //解析Excel的每行都会被执行
    @Override
    public void invoke(T data, AnalysisContext context) {
        log.info("ExcelListener - invoke 又被执行了");
        datas.add(data);
    }

    /**
     * 用于获取解析后的数据
     * @return 集合数据
     */
    public List<T> getDatas() {
        return datas;
    }


    //解析Excel文档后，会被调用一次。
    @Override
    public void doAfterAllAnalysed(AnalysisContext context) {
        log.info("ExcelListener - doAfterAllAnalysed 被执行了");
    }
}
